<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ECF start</title>
<style type="text/css">@import url("../../../../org.eclipse.platform.doc.isv/book.css");</style>
<style type="text/css">@import url("../../../../org.eclipse.platform.doc.isv/schema.css");</style>
</HEAD>
<BODY>
<H1 style="text-align:center">ECF start</H1>
<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.ecf.start<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Since: </h6>2.0.0M4
<p></p>

<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>ECF Core Start Extension Point.  This extension point (<b>org.eclipse.ecf.start</b>) allows extensions to run upon ECF core bundle startup.  Note that extensions will be run when the ECF core bundle (ID: <b>org.eclipse.ecf</b>) is started by the runtime, not necessarily upon platform startup.<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
<p></p>
<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.run">run</a>)+&gt;</p>
<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED</p>
<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED</p>
<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
<p></p>
<ul class="ConfigMarkupAttlistDesc">
</ul>
<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.run">run</a> EMPTY&gt;</p>
<p class="code SchemaDtd">&lt;!ATTLIST run</p>
<p class="code SchemaDtdAttlist">class&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CDATA #REQUIRED</p>
<p class="code SchemaDtdAttlist">asynchronous&nbsp;(true | false) &gt;</p>
<p></p>
<ul class="ConfigMarkupAttlistDesc">
<li><b>class</b> - Class that must implement IECFStart.</li>
<li><b>asynchronous</b> - Attribute to determine whether the given run class is run synchronously (default) or asynchronously</li>
</ul>
<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6>Here is an example usage of this extension point:

<pre class="Example"><span class="code SchemaTag">
&lt;extension
      point=</span><span class="code SchemaCstring">&quot;org.eclipse.ecf.start&quot;</span><span class="code SchemaTag">&gt;
   &lt;run
         class=</span><span class="code SchemaCstring">&quot;org.eclipse.ecf.example.collab.start.CollabStart&quot;</span><span class="code SchemaTag">/&gt;
&lt;/extension&gt;

&lt;extension
      point=</span><span class="code SchemaCstring">&quot;org.eclipse.ecf.start&quot;</span><span class="code SchemaTag">&gt;
   &lt;run
         class=</span><span class="code SchemaCstring">&quot;org.eclipse.ecf.example.collab.start.CollabStart&quot;</span><span class="code SchemaTag"> asynchronous=</span><span class="code SchemaCstring">&quot;true&quot;</span><span class="code SchemaTag">/&gt;
&lt;/extension&gt;

</span></pre>

Note that the CollabStart class must implement the <b>org.eclipse.ecf.start.IECFStart</b> interface.

Here's an example implementation class:

<pre class="Example"><span class="code SchemaTag">
public class CollabStart implements IECFStart {

 public IStatus run(IProgressMonitor monitor) {
     ...
 }

}

</span></pre>
<p></p>

<h6 class="CaptionFigColumn SchemaHeader">API Information: </h6><b>org.eclipse.ecf.startup.IECFStartup</b> interface:

<pre class="Example"><span class="code SchemaTag">
/**
 * Interface that must be implemented by extensions of the org.eclipse.ecf.start
 * extension point. Such extensions will have their start method called by a new
 * Job upon ECF startup.
 */
public interface IECFStart {
 /**
  * Run some startup task.
  * 
  * @return IStatus the status of the start
  */
 public IStatus run(IProgressMonitor monitor);
}
</span></pre>
<p></p>

<h6 class="CaptionFigColumn SchemaHeader">Supplied Implementation: </h6>No implementation supplied for this extensinion point.
<p></p>

<br>
<p class="note SchemaCopyright">
Copyright (c) 2007 Composent, Inc. and others.

This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/

SPDX-License-Identifier: EPL-2.0

</p>
</BODY>
</HTML>
